home *** CD-ROM | disk | FTP | other *** search
/ Codemasters Artwork Disc ECTS 2000 ( UK) / Codemasters - Artwork Disc ECTS 2000 (UK).bin / pc / xtras / medial~1 / setfx~1.dir / Scale_2_Scale Object.ls < prev    next >
Encoding:
Text File  |  1998-12-01  |  5.3 KB  |  160 lines

  1. property ieModeButtons, ieScaleEndSlider, ieScaleStartSlider, ieStartRadio, ieInterpolationRadio, ieFramesNumber, peffect, pMode, pScaleEnd, pScaleStart, pStart, pInterpolation, pNumFrames, void
  2. global fxTrackingObj
  3.  
  4. on new me, mode
  5.   set peffect to #scale
  6.   set pMode to #follow
  7.   getStageMember(me)
  8.   set ieModeButtons to new(script "Mode Buttons", [#sprites: [13, 14, 15, 16], #callback: me])
  9.   changeMode(me, pMode)
  10.   updateFXtextlist(fxTrackingObj, me)
  11.   return me
  12. end
  13.  
  14. on reset me
  15.   set pScaleEnd to 100
  16.   set pScaleStart to void
  17.   set pInterpolation to 1
  18.   set pStart to 1
  19.   set pNumFrames to 15
  20. end
  21.  
  22. on changeMode me, mode
  23.   set pMode to mode
  24.   releasePuppets(24, 48)
  25.   SetActive(ieModeButtons, getPos([#static, #Range, #pendulum, #follow], pMode))
  26.   if (mode = #static) or (mode = #follow) then
  27.     go("Scale Static")
  28.     set ieScaleEndSlider to new(script "Slider Bar", [#fillSprite: 34, #thumbSprite: 35, #arrowsSprite: 36, #textSprite: 37, #textField: "End Percentage", #left: 184, #width: 150, #min: 1, #max: 200, #cur: pScaleEnd, #suffix: "%", #active: 1, #callback: me, #ref: #end])
  29.     set ieInterpolationRadio to new(script "Radio Button", [#sprites: [42, 43, 44], #cur: pInterpolation + 1, #active: 1, #callback: me, #ref: #smoothness])
  30.   else
  31.     if (mode = #Range) or (mode = #pendulum) then
  32.       go("Scale Range")
  33.       set ieScaleStartSlider to new(script "Slider Bar", [#fillSprite: 28, #thumbSprite: 29, #arrowsSprite: 30, #textSprite: 31, #textField: "Start Percentage", #left: 184, #width: 150, #min: 1, #max: 200, #cur: pScaleStart, #suffix: "%", #active: pStart = 2, #callback: me, #ref: #start])
  34.       set ieScaleEndSlider to new(script "Slider Bar", [#fillSprite: 34, #thumbSprite: 35, #arrowsSprite: 36, #textSprite: 37, #textField: "End Percentage", #left: 184, #width: 150, #min: 1, #max: 200, #cur: pScaleEnd, #suffix: "%", #active: 1, #callback: me, #ref: #end])
  35.       set ieInterpolationRadio to new(script "Radio Button", [#sprites: [42, 43, 44], #cur: pInterpolation + 1, #active: 1, #callback: me, #ref: #smoothness])
  36.       set ieFramesNumber to new(script "Number Field", [#arrowsSprite: 47, #textSprite: 48, #textField: "Scale Duration", #min: 0, #max: 999, #cur: pNumFrames, #active: 1, #callback: me, #ref: #frames])
  37.       set ieStartRadio to new(script "Radio Button", [#sprites: [39, 40], #cur: pStart, #active: 1, #callback: me, #ref: #start])
  38.     end if
  39.   end if
  40.   resetDisplay()
  41.   setBothMembers(me, pScaleEnd)
  42.   setDisplayMember(me)
  43. end
  44.  
  45. on DoDrag me, refcon, curVal
  46.   if refcon = #end then
  47.     set pScaleEnd to curVal
  48.   else
  49.     if refcon = #start then
  50.       set pScaleStart to curVal
  51.     end if
  52.   end if
  53.   setBothMembers(me, curVal)
  54. end
  55.  
  56. on EndChange me, refcon
  57.   setDisplayMember(me)
  58. end
  59.  
  60. on changeNumber me, curVal, refcon
  61.   set pNumFrames to curVal
  62.   setDisplayMember(me)
  63. end
  64.  
  65. on RadioClick me, refcon, curActive
  66.   if refcon = #smoothness then
  67.     set pInterpolation to curActive - 1
  68.   else
  69.     if refcon = #start then
  70.       set pStart to curActive
  71.       if curActive = 1 then
  72.         set pScaleStart to void
  73.         SetEnabled(ieScaleStartSlider, 0)
  74.       else
  75.         set pScaleStart to 100
  76.         SetEnabled(ieScaleStartSlider, 1)
  77.         SetVal(ieScaleStartSlider, pScaleStart)
  78.       end if
  79.     end if
  80.   end if
  81.   setBothMembers(me, pScaleEnd)
  82.   setDisplayMember(me)
  83. end
  84.  
  85. on setBothMembers me, tempPercentage
  86.   global fxDisplayMember
  87.   if pMode = #follow then
  88.     set args to [#animMode: #follow, #interpolation: pInterpolation, #percentage: tempPercentage]
  89.   else
  90.     set args to [#animMode: #static, #interpolation: pInterpolation, #percentage: tempPercentage]
  91.   end if
  92.   scale(fxDisplayMember, args)
  93.   tempStageMember(fxTrackingObj, me, peffect, args)
  94. end
  95.  
  96. on setDisplayMember me
  97.   global fxDisplayMember
  98.   RemoveAllEffects(fxDisplayMember)
  99.   scale(fxDisplayMember, makePropertyList(me))
  100. end
  101.  
  102. on makePropertyList me
  103.   if (pMode = #follow) or (pMode = #static) then
  104.     set plist to [#animMode: pMode, #interpolation: pInterpolation, #percentage: pScaleEnd]
  105.   else
  106.     if (pMode = #Range) or (pMode = #pendulum) then
  107.       set plist to [#animMode: pMode, #interpolation: pInterpolation, #endPercentage: pScaleEnd, #numFrames: pNumFrames]
  108.       if pStart = 2 then
  109.         addProp(plist, #startPercentage, pScaleStart)
  110.       end if
  111.     end if
  112.   end if
  113.   return plist
  114. end
  115.  
  116. on getStageMember me
  117.   reset(me)
  118.   set list to getaProp(the pNewEffects of fxTrackingObj, peffect)
  119.   if voidp(list) then
  120.     exit
  121.   end if
  122.   set someOldProp to getaProp(list, #animMode)
  123.   if symbolp(someOldProp) then
  124.     set pMode to someOldProp
  125.   end if
  126.   set someOldProp to getaProp(list, #interpolation)
  127.   if integerp(someOldProp) then
  128.     set pInterpolation to someOldProp
  129.   end if
  130.   if (pMode = #Range) or (pMode = #pendulum) then
  131.     set someOldProp to getaProp(list, #startPercentage)
  132.     if integerp(someOldProp) then
  133.       set pScaleStart to someOldProp
  134.     end if
  135.     set someOldProp to getaProp(list, #endPercentage)
  136.     if integerp(someOldProp) then
  137.       set pScaleEnd to someOldProp
  138.     end if
  139.     if voidp(pScaleEnd) then
  140.       set pStart to 1
  141.     else
  142.       set pStart to 2
  143.     end if
  144.     set someOldProp to getaProp(list, #numFrames)
  145.     if integerp(someOldProp) then
  146.       set pNumFrames to someOldProp
  147.     end if
  148.   else
  149.     set someOldProp to getaProp(list, #percentage)
  150.     if integerp(someOldProp) then
  151.       set pScaleEnd to someOldProp
  152.     end if
  153.   end if
  154. end
  155.  
  156. on Release me
  157.   resetDisplay()
  158.   releasePuppets(8, 48)
  159. end
  160.